package easy

import "strconv"

/*
时间复杂度:O(1)
空间复杂度:O(1)

求年月日是多少天的题:以后先定义一个monthDays切片,里面存储每个月的天数,2月份先存28天,然后通过判断是否为闰年则+1;
先从1开始循环月份,一直加过来,最后一个月加上天数
*/

var monthDays = []int{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 31}

func dayOfYear(date string) int {
	year, _ := strconv.Atoi(date[:4])
	month, _ := strconv.Atoi(date[5:7])
	day, _ := strconv.Atoi(date[8:10])
	ans := 0
	for i := 1; i < month; i++ {
		ans += monthDays[i-1]
	}
	ans += day
	// 4年一润，百年不润，四百再润
	if month > 2 && ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
		ans++
	}
	return ans
}